/**
 * Created with IntelliJ IDEA.
 * Description: 互质
 * User: DELL
 * Date: 2024-05-03
 * Time: 16:58
 */
public class Main1 {
    static int MOD = 1000000007;

    /**
     * 本题通过输出找规律发现
     * 2023 以内和 2023 互质数个数为 1632
     * 2023^2 以内和 2023 互质数个数为 3301536 = 1632 * 2023
     * 2023^3 以内和 2023 互质数个数为 6679007328 = 1632 * 2023 * 2023
     * 因此找规律即可得到
     * 2023^2023 以内和 2023 互质数个数为 1032 * 2023^2022
     * ------------------------------------------------------
     * 本题答案解法是考虑不互质的数量，然后用总数减去不互质的数量
     * 经分解 2023 = 7 * 17^2
     * 意味着 2023 只有 7 和 17 这两个因子
     * 而 2023^2023 以内是 7 的倍数的数字的个数为 2023^2023/7
     * 而 2023^2023 以内是 17 的倍数的数字的个数为 2023^2023/17
     * 而 2023^2023 以内是 7 和 17 的倍数的数字的个数为 2023^2023/(7*17)
     * 因此 总数 - 7的倍数的个数 - 17的倍数的个数 + 同时为 7 和 17 的倍数的数字的个数 （因为 7 和 17 的倍数的数字被算了两次，因此得加回来）
     * 因此 2023^2023 以内互质数个数为 2023^2023 - 2023^2023/7 - 2023^2023/17 + 2023^2023/(7*17)
     * 上面公式本质上提取一个 2023^2022 因子后，其实剩下的就是 2023 以内的和 2023 互质的数字的个数
     * 因此和上面猜测的一致
     *
     * @param args
     */
    public static void main(String[] args) {
//        long temp = 2023L * 2023 * 2023;
//        long count = 0;
//        for (long i = 1; i < temp; i++) {
//            if (gcd(i, 2023) == 1) {
//                count++;
//            }
//        }
//        System.out.println(count);
//        System.out.println(count / 2023);
//        System.out.println(3301536 / 1632);
        long temp = 1632;
        for (long i = 1; i <= 2022; i++) {
            temp *= 2023;
            temp %= MOD;
        }
        System.out.println(temp);
    }

//    private static long gcd(long a, long b) {
//        if (b == 0) {
//            return a;
//        }
//        return gcd(b, a % b);
//    }
}
